package shuishijie.suishijie.model.web;




import java.util.List;

import io.reactivex.Observable;
import okhttp3.MultipartBody;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Query;
import shuishijie.suishijie.model.ActivityDetail;
import shuishijie.suishijie.model.AddressInfo;
import shuishijie.suishijie.model.AlipayInfo;
import shuishijie.suishijie.model.BillList;
import shuishijie.suishijie.model.BrandList;
import shuishijie.suishijie.model.CouponInfo;
import shuishijie.suishijie.model.FriendPayInfo;
import shuishijie.suishijie.model.GoodsCategory;
import shuishijie.suishijie.model.GoodsDetail;
import shuishijie.suishijie.model.GoodsInfo;
import shuishijie.suishijie.model.GoodsList;
import shuishijie.suishijie.model.HomeRecommand;
import shuishijie.suishijie.model.HotTime;
import shuishijie.suishijie.model.HotTimeGoods;
import shuishijie.suishijie.model.HotTimeInfo;
import shuishijie.suishijie.model.ImgData;
import shuishijie.suishijie.model.InviteList;
import shuishijie.suishijie.model.JMessageInfo;
import shuishijie.suishijie.model.MemberInfo;
import shuishijie.suishijie.model.MessageCount;
import shuishijie.suishijie.model.MobileCheck;
import shuishijie.suishijie.model.MsgCategory;
import shuishijie.suishijie.model.MsgInfoList;
import shuishijie.suishijie.model.Navigation;
import shuishijie.suishijie.model.OpenShop;
import shuishijie.suishijie.model.OrderInfo;
import shuishijie.suishijie.model.OrderInfoDetail;
import shuishijie.suishijie.model.OrderList;
import shuishijie.suishijie.model.OrderMsfList;
import shuishijie.suishijie.model.ProfitInfo;
import shuishijie.suishijie.model.Rediskey;
import shuishijie.suishijie.model.ReturnOrderDetail;
import shuishijie.suishijie.model.ReturnOrderList;
import shuishijie.suishijie.model.ReturnProcess;
import shuishijie.suishijie.model.SaleInfo;
import shuishijie.suishijie.model.ShopBasicInfo;
import shuishijie.suishijie.model.ShopInfo;
import shuishijie.suishijie.model.ShoppingCar;
import shuishijie.suishijie.model.ShoppingCarInfo;
import shuishijie.suishijie.model.TransportDetail;
import shuishijie.suishijie.model.TransportInfo;
import shuishijie.suishijie.model.UserInfo;
import shuishijie.suishijie.model.WechartPay;

/**
 * Created by mindx on 2017/4/20.
 */

public interface GvgService {
    public static final String DEFAULT_CHECKFLAG = "";//"?checkFlag=false";

    @POST("/user/goldCoinList.json")
    Observable<BaseResponse> goldCoinList(@Query("mobile") String mobile,
                                          @Query("token") String tonen,
                                          @Query("user_id") String user_id,
                                          @Query("coinStatus") int coinStatus
    );

    /**
     * 首页头部
     **/
    @POST("/homePage/navigationList.json?checkFlag=false")
    Observable<BaseResponse<List<Navigation>>> navigationList(@Query("classify_id") String classify_id);


    /**
     * 首页广告轮播
     **/
    @POST("/homePage/advImages.json?checkFlag=false")
    Observable<BaseResponse<List<ImgData>>> advImages();

    /**
     * 首页-推荐活动展示
     **/
    @POST("/homePage/showActivity.json?checkFlag=false")
    Observable<BaseResponse<List<ActivityDetail>>> showActivity();

    /**
     * 首页-限时抢购展示
     **/
    @POST("/homePage/showHotTime.json?checkFlag=false")
    Observable<BaseResponse<HotTime>> showHotTime();


    /**
     * 首页-推荐品牌和推荐单品显示
     **/
    @POST("/homePage/recommendGoodsAndBrand.json?checkFlag=false" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<HomeRecommand>> recommendGoodsAndBrand(@Query("mobile") String mobile,
                                                                   @Query("token") String tonen,
                                                                   @Query("shop_id") String shop_id);

    /**
     * 商品详情
     **/
    @POST("/goods/goodsDetails.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<GoodsDetail>> goodsDetails(@Query("mobile") String mobile,
                                                       @Query("token") String tonen,
                                                       @Query("goods_id") String goods_id,
                                                       @Query("shop_id") String shop_id
//            @Query("hotTime_id") String hotTime_id,
//            @Query("activity_id") String activity_id
    );

    /**
     * 商品分类展示
     **/
    @POST("/classify/goodsclassify.json?checkFlag=false")
    Observable<BaseResponse<List<GoodsCategory>>> goodsclassify();

    /**
     * 加入购物车
     **/
    @POST("/shoppingCar/addToShoppingCar.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<ShoppingCar>> addToShoppingCar(@Query("mobile") String mobile,
                                                           @Query("token") String tonen,
                                                           @Query("user_id") String user_id,
                                                           @Query("goods_id") String goods_id,
                                                           @Query("shop_id") String shop_id,
                                                           @Query("spec_id") String spec_id,
                                                           @Query("status") String status,
                                                           @Query("account") String account);


    /**
     * 商品列表展示
     **/
    @POST("/goods/goodsList.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<GoodsList>> goodsList(@Query("mobile") String mobile,
                                                  @Query("token") String tonen,
                                                  @Query("searchInfo") String searchInfo,

                                                  @Query("brand_id") String brand_id,
                                                  @Query("classify_id") String classify_id,
                                                  @Query("numberPage") String numberPage,
                                                  @Query("currentPage") String currentPage,
                                                  @Query("sort") String sort,
                                                  @Query("shop_id") String shop_id);


    /**
     * 品牌列表展示
     **/
    @POST("/homePage/brandsList.json?checkFlag=false" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<BrandList>> brandsList(@Query("mobile") String mobile,
                                                   @Query("token") String tonen,
                                                   @Query("currentPage") String currentPage,
                                                   @Query("shop_id") String shop_id,
                                                   @Query("numberPage") String numberPage);

    /**
     * showActivityGoods
     **/
    @POST("/activity/showActivityGoods.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<List<GoodsInfo>>> showActivityGoods(@Query("mobile") String mobile,
                                                                @Query("token") String tonen,
                                                                @Query("activity_id") String activity_id,
                                                                @Query("shop_id") String shop_id);

    /**
     * 添加店主精选商品或品牌
     **/
    @POST("/shop/saveBrandOrGoods.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<ShopInfo>> saveBrandOrGoods(@Query("mobile") String mobile,
                                                        @Query("token") String tonen,
                                                        @Query("shop_id") String shop_id,
                                                        @Query("goods_id") String goods_id,
                                                        @Query("brand_id") String brand_id);

    /**
     * removeBrandOrGoods
     * shopgoods_id 和id一样，为了兼容俩次接口修改
     **/
    @POST("/shop/removeBrandOrGoods.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<Object>> removeBrandOrGoods(@Query("mobile") String mobile,
                                                        @Query("token") String tonen,
                                                        @Query("user_id") String user_id,
                                                        @Query("id") String id);

    /**
     * 购物车列表展示
     **/
    @POST("/shoppingCar/shoppingCarList.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<List<ShoppingCarInfo>>> shoppingCarList(@Query("mobile") String mobile,
                                                                    @Query("token") String tonen,
                                                                    @Query("user_id") String user_id,
                                                                    @Query("shop_id") String shop_id);

    /**
     * 修改购物车数量
     **/
    @POST("/shoppingCar/updateShoppingCarAccount.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<Object>> updateShoppingCarAccount(@Query("mobile") String mobile,
                                                              @Query("token") String tonen,
                                                              @Query("user_id") String user_id,
                                                              @Query("shoppingCar_id") String shoppingCar_id,
                                                              @Query("spec_id") String spec_id,
                                                              @Query("account") String account);

    /**
     * 删除购物车
     **/
    @POST("/shoppingCar/delShoppingCar.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<Object>> delShoppingCar(@Query("mobile") String mobile,
                                                    @Query("token") String tonen,
                                                    @Query("user_id") String user_id,
                                                    @Query("cartIds") String cartIds);

    /**
     * 确认订单页初始化
     **/
    @POST("/goodsOrder/queryOrderConfirm.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<OrderInfo>> queryOrderConfirm(@Query("mobile") String mobile,
                                                          @Query("token") String tonen,
                                                          @Query("user_id") String user_id,
                                                          @Query("shop_id") String shop_id,
                                                          @Query("cart_ids") String cart_ids);


    /**
     * 地址列表展示
     **/
    @POST("/address/queryAddressList.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<List<AddressInfo>>> showAddressList(@Query("mobile") String mobile,
                                                                @Query("token") String tonen,
                                                                @Query("user_id") String user_id);

    /**
     * 生成订单
     **/
    @POST("/goodsOrder/saveGoodsOrder.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<OrderInfo>> saveGoodsOrder(@Query("mobile") String mobile,
                                                       @Query("token") String tonen,
                                                       @Query("user_id") String user_id,
                                                       @Query("shop_id") String shop_id,
                                                       @Query("coin_id") String coin_id,
                                                       @Query("coupon_id") String coupon_id,
                                                       @Query("addr_id") String addr_id,
                                                       @Query("transport_id") String transport_id,
                                                       @Query("cartids") String cartids,
                                                       @Query("order_type") String order_type);

    /**
     * 删除地址
     **/
    @POST("/address/removeAddress.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<Object>> removeAddress(@Query("mobile") String mobile,
                                                   @Query("token") String tonen,
                                                   @Query("user_id") String user_id,
                                                   @Query("address_id") String address_id);

    /**
     * 设置默认地址
     **/
    @POST("/address/defaultAddress.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<Object>> defaultAddress(@Query("mobile") String mobile,
                                                    @Query("token") String tonen,
                                                    @Query("user_id") String user_id,
                                                    @Query("address_id") String address_id);

    /**
     * 添加和修改地址
     **/
    @POST("/address/saveAndUpdateAddresss.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<Object>> saveAndUpdateAddress(@Query("mobile") String mobile,
                                                          @Query("token") String tonen,
                                                          @Query("user_id") String user_id,
                                                          @Query("address_id") String address_id,
                                                          @Query("name") String name,
                                                          @Query("phone") String phone,
                                                          @Query("identification") String identification,
                                                          @Query("province_id") String province_id,
                                                          @Query("city_id") String city_id,
                                                          @Query("district_id") String district_id,
                                                          @Query("addressInfo") String addressInfo);

    /**
     * 修改地址页初始化
     **/
    @POST("/address/updateAddressInit.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<AddressInfo>> updateAddressInit(@Query("mobile") String mobile,
                                                            @Query("token") String tonen,
                                                            @Query("user_id") String user_id,
                                                            @Query("address_id") String address_id);

    /**
     * 商品-订单列表显示
     **/
    @POST("/goodsOrder/queryGoodsOrderForm.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<OrderList>> queryGoodsOrderForm(@Query("mobile") String mobile,
                                                            @Query("token") String tonen,
                                                            @Query("user_id") String user_id,
                                                            @Query("currentPage") String currentPage,
                                                            @Query("numberPage") String numberPage,
                                                            @Query("order_status") String order_status);

    /**
     * 订单详细显示
     **/
    @POST("/goodsOrder/queryOrderDetails.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<OrderInfoDetail>> queryOrderDetails(@Query("mobile") String mobile,
                                                                @Query("token") String tonen,
                                                                @Query("user_id") String user_id,
                                                                @Query("order_id") String order_id);

    /**
     * 登录接口
     **/
    @POST("user/loginCheck.json?checkFlag=false")
    Observable<BaseResponse<UserInfo>> loginCheck(@Query("mobile") String mobile,
                                                  @Query("account") String account,
                                                  @Query("password") String password,
                                                  @Query("smscode") String smscode,
                                                  @Query("redisKey") String redisKey,
                                                  @Query("token") String token,
                                                  @Query("countryCode") String countryCode,
                                                  @Query("type") String type);

    /**
     * 发送验证码
     **/
    @POST("/api/common/sendMessageCode.json?checkFlag=false")
    Observable<BaseResponse<Rediskey>> sendMessageCode(@Query("mobile") String mobile, @Query("countryCode") String countryCode);

    /**
     * 删除订单接口
     **/
    @POST("/goodsOrder/delorder.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<Object>> delorder(@Query("mobile") String mobile,
                                              @Query("token") String tonen,
                                              @Query("orderid") String orderid,
                                              @Query("user_id") String user_id);

    /**
     * 确认订单和取消订单通用接口
     **/
    @POST("/goodsOrder/updateOrderStatus.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<Object>> updateOrderStatus(@Query("mobile") String mobile,
                                                       @Query("token") String tonen,
                                                       @Query("user_id") String user_id,
                                                       @Query("orderid") String orderid,
                                                       @Query("orderStatus") String orderStatus);

    /**
     * 我的店铺首页显示
     **/
    @POST("/shop/showShopIndex.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<ShopBasicInfo>> showShopIndex(@Query("mobile") String mobile,
                                                          @Query("token") String tonen,
                                                          @Query("user_id") String user_id,
                                                          @Query("shop_id") String shop_id);

    /**
     * 限时抢购-商品列表
     **/
    @POST("/activity/showHotTimeGoods.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<HotTimeGoods>> showHotTimeGoods(@Query("mobile") String mobile,
                                                            @Query("token") String tonen,
                                                            @Query("hotTime_id") String hotTime_id,
                                                            @Query("shop_id") String shop_id);

    /**
     * 限时抢购列表页-头部显示
     **/
    @POST("/activity/showHotTimeGoodsHead.json?checkFlag=false")
    Observable<BaseResponse<HotTimeInfo>> showHotTimeGoodsHead();

    /**
     * 用户退出登录
     **/
    @POST("/user/userLogout.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<HotTimeGoods>> userLogout(@Query("mobile") String mobile,
                                                      @Query("token") String tonen);

    /**
     * 推荐开店页初始化
     **/
    @POST("/sellManage/openShop.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<OpenShop>> openShop(@Query("mobile") String mobile,
                                                @Query("token") String tonen,
                                                @Query("shop_id") String shop_id);


    /**
     * 店主精选商品列表展示
     **/
    @POST("/shop/showShopGoodsList.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<GoodsList>> showShopGoodsList(@Query("mobile") String mobile,
                                                          @Query("token") String tonen,
                                                          @Query("shop_id") String shop_id,
                                                          @Query("currentPage") String currentPage,
                                                          @Query("numberPage") String numberPage);

    /**
     * 店主精选品牌列表展示
     **/
    @POST("/shop/showShopBrandList.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<BrandList>> showShopBrandList(@Query("mobile") String mobile,
                                                          @Query("token") String tonen,
                                                          @Query("shop_id") String shop_id,
                                                          @Query("currentPage") String currentPage,
                                                          @Query("numberPage") String numberPage);

    /**
     * 店主精选商品页头部展示
     **/
    @POST("/shop/showShopGoodsHead.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<ShopInfo>> showShopGoodsHead(@Query("mobile") String mobile,
                                                         @Query("token") String tonen,
                                                         @Query("shop_id") String shop_id);

    /**
     * 我的页初始化
     **/
    @POST("/user/myinit.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<ShopInfo>> myinit(@Query("mobile") String mobile,
                                              @Query("token") String tonen,
                                              @Query("user_id") String user_id);

    /**
     * 支付宝支付接口
     **/
    @POST("/pay/alipayPay.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<AlipayInfo>> alipayPay(@Query("mobile") String mobile,
                                                   @Query("token") String tonen,
                                                   @Query("user_id") String user_id,
                                                   @Query("order_id") String order_id);

//    /**
//     * 店铺访问量页展示
//     **/
//    @POST("/shopManage/showLookNumber.json" + DEFAULT_CHECKFLAG)
//    Observable<BaseResponse<AccessInfo>> showLookNumber(@Query("mobile") String mobile,
//                                                        @Query("token") String tonen,
//                                                        @Query("shop_id") String shop_id,
//                                                        @Query("user_id") String user_id);


    /**
     * 收益管理-页面展示
     **/
    @POST("/incomeManage/showIncome.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<ProfitInfo>> showIncome(@Query("mobile") String mobile,
                                                    @Query("token") String tonen,
                                                    @Query("user_id") String user_id,
                                                    @Query("order_id") String order_id);

                                                  // @Query("order_id")String order_id;


    /**
     * 店铺资料查询
     **/
    @POST("/shop/showUserShopInfo.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<ShopInfo>> showUserShopInfo(@Query("mobile") String mobile,
                                                        @Query("token") String tonen,
                                                        @Query("user_id") String user_id,
                                                        @Query("shop_id") String shop_id);


    /**
     * 店铺资料修改
     **/
    @POST("/shop/updateShopInfo.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<Object>> updateShopInfo(@Query("mobile") String mobile,
                                                    @Query("token") String tonen,
                                                    @Query("user_id") String user_id,
                                                    @Query("shop_id") String shop_id,
                                                    @Query("shopName") String shopName,
                                                    @Query("shopInfo") String shopInfo);

    /**
     * 销售管理-统计图展示
     **/
    @POST("/sellManage/showSellCount.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<SaleInfo>> showSellCount(@Query("mobile") String mobile,
                                                     @Query("token") String tonen,
                                                     @Query("user_id") String user_id,
                                                     @Query("shop_id") String shop_id,
                                                     @Query("dayNumber") String dayNumber,
                                                     @Query("beginTime") String beginTime,
                                                     @Query("endTime") String endTime);

    /**
     * 消息类型显示
     **/
    @POST("/message/showMessageType.json" + DEFAULT_CHECKFLAG)
    Observable<ListResponse<MsgCategory>> showMessageType(@Query("mobile") String mobile,
                                                          @Query("token") String tonen,
                                                          @Query("user_id") String user_id);

    /**
     * 会员管理-店主管理列表
     **/
    @POST("/sellManage/showShopManList.json" + DEFAULT_CHECKFLAG)
    Observable<GvgListResponse<MemberInfo>> showShopManList(@Query("mobile") String mobile,
                                                            @Query("token") String tonen,
                                                            @Query("user_id") String user_id,
                                                            @Query("currentPage") String currentPage,
                                                            @Query("numberPage") String numberPage
    );


    /**
     * 消息列表展示
     **/
    @POST("/message/messageList.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<MsgInfoList>> messageList(@Query("mobile") String mobile,
                                                      @Query("token") String tonen,
                                                      @Query("user_id") String user_id,
                                                      @Query("numberPage") String numberPage,
                                                      @Query("currentPage") String currentPage);


    /**
     * 订单消息列表展示
     **/
    @POST("/message/orderMessageList.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<OrderMsfList>> orderMessageList(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("user_id") String user_id,
            @Query("currentPage") String currentPage,
            @Query("numberPage") String numberPage);

    /**
     * 修改店铺图片
     **/
    @Multipart
    @POST("/user/uploadShopImg.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<Object>> uploadShopImg(@Query("mobile") String mobile,
                                                   @Query("token") String tonen,
                                                   @Query("user_id") String user_id,
                                                   @Part MultipartBody.Part imgFile,
                                                   @Query("imgType") String imgType);

    /**
     * 售后列表
     **/
    @POST("/returnOrder/queryReturnOrder.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<ReturnOrderList>> queryReturnOrder(@Query("mobile") String mobile,
                                                               @Query("token") String tonen,
                                                               @Query("user_id") String user_id,
                                                               @Query("currentPage") String currentPage,
                                                               @Query("numberPage") String numberPage);

    /**
     * 退货申请
     **/
    @POST("/returnOrder/returnOrderApply.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<Object>> returnOrderApply(@Query("mobile") String mobile,
                                                      @Query("token") String tonen,
                                                      @Query("user_id") String user_id,
                                                      @Query("order_id") String order_id,
                                                      @Query("returnReason") String returnReason,
//            @Query("returnDesc") String returnDesc,
                                                      @Query("type") String type);

    /**
     * 邀请记录列表
     **/
    @POST("/invite/showInviteNote.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<InviteList>> showInviteNote(@Query("mobile") String mobile, @Query("token") String tonen,
                                                        @Query("user_id") String user_id,
                                                        @Query("currentPage") String currentPage,
                                                        @Query("numberPage") String numberPage);

    /**
     * 账单明细列表展示
     **/
    @POST("/incomeManage/showBillList.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<BillList>> showBillList(@Query("mobile") String mobile,
                                                    @Query("token") String tonen,
                                                    @Query("user_id") String user_id,
                                                    @Query("currentPage") String currentPage,
                                                    @Query("numberPage") String numberPage,
                                                    @Query("type") String type);

    /**
     * 退货（退款）详情页显示
     **/
    @POST("/returnOrder/returnOrderShow.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<ReturnOrderDetail>> returnOrderShow(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("user_id") String user_id,
            @Query("order_id") String order_id,
            @Query("return_id") String return_id,
            @Query("type") String type);

    /**
     * 退货日志接口
     **/
    @POST("/returnOrder/queryReturn.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<ReturnProcess>> queryReturn(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("user_id") String user_id,
            @Query("flage") String flage,
            @Query("refund_id") String refund_id);

    /**
     * 微信支付接口
     **/
    @POST("/pay/wxPay.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<WechartPay>> wxPay(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("user_id") String user_id,
            @Query("order_id") String order_id);

    /**
     * 优惠券列表展示
     **/
    @POST("/user/couponList.json" + DEFAULT_CHECKFLAG)
    Observable<ListResponse<CouponInfo>> couponList(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("user_id") String user_id,
            @Query("couponStatus") String couponStatus,
            @Query("totalMoney") String totalMoney);

    /**
     * 修改密码-手机号验证
     **/
    @POST("/user/mobileCheck.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<MobileCheck>> mobileCheck(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("rediskey") String rediskey,
            @Query("smscode") String smscode,
            @Query("user_id") String user_id);

    /**
     * 修改密码
     **/
    @POST("/user/updatePassWord.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<Object>> updatePassWord(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("user_id") String user_id,
            @Query("newPassword") String newPassword,
            @Query("secondPassword") String secondPassword,
            @Query("updateLock") String updateLock);

    /**
     * 绑定支付宝初始化
     **/
    @POST("/user/showAlipayMessage.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<AlipayInfo>> showAlipayMessage(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("user_id") String user_id);

    /**
     * 绑定支付宝
     **/
    @POST("/user/saveAlipayMessage.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<Object>> saveAlipayMessage(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("user_id") String user_id,
            @Query("trueName") String trueName,
            @Query("alipayAccount") String alipayAccount);

    /**
     * 支付宝（微信）提现接口
     **/
    @POST("/pay/alipayDrawMoney.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<Object>> alipayDrawMoney(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("user_id") String user_id,
            @Query("drawMoney") String drawMoney,
            @Query("paymentType") String paymentType);

    /**
     * 首页-消息提醒（7天内）
     **/
    @POST("/homePage/messageCall.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<MessageCount>> messageCall(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("user_id") String user_id);

    /**
     * 首页-读秒图片广告
     **/
    @POST("/homePage/homeActivityImage.json?checkFlag=false" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<ImgData>> homeActivityImage();

    /**
     * 销量管理-销量数展示
     **/
    @POST("/sellManage/showSellNumber.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<SaleInfo>> showSellNumber(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("user_id") String user_id,
            @Query("shop_id") String shop_id,
            @Query("dayNumber") String dayNumber);

    /**
     * 物流列表显示
     **/
    @POST("/goodsOrder/transportListShow.json" + DEFAULT_CHECKFLAG)
    Observable<ListResponse<TransportInfo>> transportListShow(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("order_id") String order_id);

    /**
     * 物流详情显示
     **/
    @POST("/goodsOrder/transportShow.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<TransportDetail>> transportShow(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("transportCode") String transportCode,
            @Query("order_id") String order_id);

    /**
     * 余额支付接口
     **/
    @POST("/pay/availablePay.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<Object>> availablePay(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("user_id") String user_id,
            @Query("order_id") String order_id,
            @Query("payPassword") String payPassword);

    /**
     * 修改支付密码
     **/
    @POST("/user/updateTradePassword.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<Object>> updateTradePassword(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("tradepassword") String tradepassword,
            @Query("smscode") String smscode,
            @Query("redisKey") String redisKey,
            @Query("user_id") String user_id);


    /**
     * 访问添加接口
     **/
    @POST("/api/common/saveSession.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<Object>> saveSession(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("user_id") String user_id,
            @Query("shop_id") String shop_id,
            @Query("goods_id") String goods_id,
            @Query("brand_id") String brand_id,
            @Query("visitType") String visitType);

    /**
     * 分享量添加接口
     **/
    @POST("/api/common/saveShare.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<Object>> saveShare(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("shop_id") String shop_id,
            @Query("goods_id") String goods_id,
            @Query("brand_id") String brand_id);

    /**
     * 消息
     **/
    @POST("/pushAndChart/getChatMessageContent.json" + DEFAULT_CHECKFLAG)
    Observable<GvgListResponse<JMessageInfo>> getChatMessageContent(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("currentPage") String currentPage,
            @Query("numberPage") String numberPage,
            @Query("from_id") String from_id,
            @Query("target_id") String target_id,
            @Query("msg_id") String msg_id
    );

    /**
     * 保存聊天消息
     **/
    @POST("/pushAndChart/saveChatMessage.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<Object>> saveChatMessage(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("ctime_ms") String ctime_ms,
            @Query("msg_id") String msg_id,
            @Query("msg_type") String msg_type,
            @Query("text") String text,
            @Query("media_url") String media_url,
            @Query("from_id") String from_id,
            @Query("from_platform") String from_platform,
            @Query("target_id") String target_id);

    /**
     * 代付-初始化分享页面
     **/
    @POST("/anotherPay/anotherPayMessage.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<FriendPayInfo>> intianotherPayMessage(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("user_id") String user_id,
            @Query("order_id") String order_id);
    /**
     * 银联支付
     **/
    @POST("/pay/unionAppPay.json" + DEFAULT_CHECKFLAG)
    Observable<BaseResponse<String>> unionAppPay(
            @Query("mobile") String mobile,
            @Query("token") String token,
            @Query("user_id") String user_id,
            @Query("order_id") String order_id);

}
